package com.lwl.blue.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lwl.blue.commont.base.JsonResult;
import com.lwl.blue.commont.base.PageParam;
import com.lwl.blue.entity.PurchaseOrder;

public interface PurchaseOrderService extends IService<PurchaseOrder> {
    /**
     * 分页查询采购订单。
     * @param pageParam 分页与条件载体
     * @return 标准返回包装的分页结果
     */
    JsonResult<Page<PurchaseOrder>> pages(PageParam<PurchaseOrder> pageParam);

    /**
     * 根据ID查询采购订单。
     * @param id 主键ID
     * @return 标准返回包装的实体
     */
    JsonResult<PurchaseOrder> getByPk(String id);

    /**
     * 打回重审处理
     * @param order 原订单
     * @param rejectReason 驳回原因
     * @return 处理结果
     */
    JsonResult<String> rejectForRevision(PurchaseOrder order, String rejectReason);

    /**
     * 查询订单的所有历史版本
     * @param originalUUID 原订单UUID
     * @return 历史版本列表
     */
    JsonResult<java.util.List<PurchaseOrder>> getHistoryVersions(String originalUUID);
}


